#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;
#include<list>
//#include"reverse_iterator.h"
#include"list.h"
#include"vector.h"
//template<class T1,class T2>
//class Date
//{
//public:
//	Date()
//	{
//		cout << "template<class T1,class T2>" << endl;		
//	}
//};
//template<>
//class Date<int,double>
//{
//public:
//	Date()
//	{
//		cout << "class Date<int,double>" << endl;
//	}
//};
//template<class T>
//class Date<T, double>
//{
//public:
//	Date()
//	{
//		cout << "class Date<T, double>" << endl;
//	}
//};
//template<class T1,class T2>
//class Date<T1*, T2*>
//{
//public:
//	Date()
//	{
//		cout << "class Date < T1*, T2*>" << endl;
//	}
//};
//int  main()
//{
//	Date<int, int> d1;
//	Date<int, double> d2;
//	Date<double,double > d3;
//	Date<int*, int*> d4;
//	Date<double*, double*> d5;
//	return 0;
//}
//void func(const ljw::list<int> It)
//{
//	ljw::list<int>::const_reverse_iterator rit = It.rbegin();
//	while (rit != It.rend())
//	{
//		//*rit+=1;
//		cout << *rit << " ";
//		++rit;
//	}
//	cout << endl;
//}
//int main()
//{
//	ljw::list<int> It;
//	It.push_back(1);
//	It.push_back(2);
//	It.push_back(3);
//	It.push_back(4);
//	It.push_back(5);
//
//	ljw::list<int>::iterator it = It.begin();
//	while (it != It.end())
//	{
//		cout << *it << " ";
//		it++;
//	}
//	cout << endl;
//	ljw::list<int>::reverse_iterator rit = It.rbegin();
//	while (rit != It.rend())
//	{
//		//*rit+=1;
//		cout << *rit << " ";
//		++rit;
//	}
//	cout << endl;
//	func(It);
//	return 0;
//}
void func(const ljw::vector<int> It)
{
	ljw::vector<int>::const_reverse_iterator rit = It.rbegin();
	while (rit != It.rend())
	{
		//*rit+=1;
		cout << *rit << " ";
		++rit;
	}
	cout << endl;
}
int main()
{
	ljw::vector<int> It;
	It.push_back(1);
	It.push_back(2);
	It.push_back(3);
	It.push_back(4);
	It.push_back(5);

	ljw::vector<int>::iterator it = It.begin();
	while (it != It.end())
	{
		cout << *it << " ";
		it++;
	}
	cout << endl;
	ljw::vector<int>::reverse_iterator rit = It.rbegin();
	while (rit != It.rend())
	{
		//*rit+=1;
		cout << *rit << " ";
		++rit;
	}
	cout << endl;
	func(It);
	return 0;
}